import axios from "axios"
import { BASE_URL, TIMEOUT } from "./config"

class MyRequest {
  constructor(baseURL, timeout) {
    this.instance = axios.create({ baseURL, timeout })
  }

  request(config) {
    // return new Promise((resolve, reject) => {
    //   this.instance.request(config).then((res) => {
    //     resolve(res.data)
    //   }).catch(err => {
    //     reject(err)
    //   })
    // })
    return new Promise((resolve, reject) => {
      this.instance.request(config).then((res) => {
        resolve(res.data)
      }).catch(err => {
        reject(err)
      })
    })
  }
  get(config) {
    return this.request({ ...config, method: 'get' })
  }
  post(config) {
    return this.request({ ...config, method: 'post' })
  }
}

export const BaseRequest = new MyRequest(BASE_URL, TIMEOUT)
